package model;

import java.util.ArrayList;

/**
 * Clase Episodio
 * @author Grupo-03
 * @version 0.1, 08/04/14 
 *
 */

public class Episodio implements Reproducible{

	private long		id;
	private long      	duracion;
	private int       	numero;
	private String    	titulo;
	private Temporada 	temporada;
	
	// Constructor
	public Episodio(){
	}
	
	public Episodio(long duracion, int numero, String titulo, Temporada temporada){
		this.duracion   = duracion;
		this.numero     = numero;
		this.titulo     = titulo;
		this.temporada  = temporada;
		/**
		 * Agregando un episodio para esta temporada
		 */
		temporada.agregarEpisodio(this);
		
		//ArrayList <Episodio> episodios = (ArrayList<Episodio>) this.temporada.getEpisodios();
		//episodios.add(this);
		
	}
	

	public long getDuracion(){
		return this.duracion;
	}
	
	public void setDuracion(long duracion){
		this.duracion = duracion;
	}
	
	/**
	 * 
	 * @return  Retorna el number de episodio dentro de la temporada
	 */
	public int getNumero(){
		return this.numero;
	}
	
	public void setNumero(int numero){
		this.numero = numero;
	}
	
	public String getTitulo(){
		return this.titulo;
	}
	
	public void setTitulo(String titulo){
		this.titulo = titulo;
	}
	
	/**
	 * @return Retorna la edad min que debe tener un usuario para ver el episodio
	 */

	public int	getEdadMinima(){
		return this.temporada.getSerie().getEdadMinima();
	}

	public Temporada 	getTemporada(){
		return this.temporada;
	}
	
	public void setTemporada(Temporada temporada){
		this.temporada = temporada;
	}
	
	/**
	 * @return Retorna verdadero si el episodio es apta para el usuario enviado como param
	 */
	public boolean		aptoPara(Usuario usuario){
		return usuario.edad() >= this.getEdadMinima();
	}
	
	public boolean 		esPelicula(){
		return false;
	}
	
	public boolean 		esEpisodio(){
		return true;
	}

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}
	
}